Dynamic adjustment of user interface

ABSTRACT

Embodiments related to dynamically adjusting a user interface based upon depth information are disclosed. For example, one disclosed embodiment provides a method including receiving depth information of a physical space from a depth camera, locating a user within the physical space from the depth information, determining a distance between the user and a display device from the depth information, and adjusting one or more features of a user interface displayed on the display device based on the distance.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/674,793, filed on Nov. 12, 2012, and titled “DYNAMIC ADJUSTMENT OFUSER INTERFACE”, the entire disclosure of which is hereby incorporatedherein by reference.

BACKGROUND

User interfaces for computers, mobile phones, gaming devices, etc., aresized to allow a user to visualize and interact with the interface froman expected distance and/or via an expected input mechanism. Forexample, a user interface configured for display on a computer monitormay be designed for use with a relatively large screen and a preciseuser input device, such as a mouse or the like. As a result, such a userinterface may have a relatively large number of controls spacedrelatively close together. In contrast, a user interface designed for asmart phone may be designed for use with a smaller screen and touchinputs. As a result, such a user interface may have a relatively smallnumber of controls with wider spacing. Such user interfaces may havezoom controls that allow a user to choose to increase or decrease amagnification of the user interface as displayed.

SUMMARY

Embodiments related to dynamically adjusting a user interface based upondepth information are disclosed. For example, one disclosed embodimentprovides, on a computing device, a method including receiving depthinformation of a physical space from a depth camera, locating a userwithin the physical space from the depth information, determining adistance between the user and a display device from the depthinformation, and adjusting one or more features of a user interfacedisplayed on the display device based on the distance.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a schematic illustration of an example embodiment of a userinterface, and a user positioned at a first distance from the userinterface.

FIG. 2 shows the user at a second distance from the user interface ofFIG. 1.

FIG. 3 is a flow chart illustrating a method for dynamically adjusting auser interface according to an embodiment of the present disclosure.

FIG. 4 is a flow chart illustrating a method for adjusting a userinterface according to another embodiment of the present disclosure.

FIG. 5 schematically shows a non-limiting computing device.

DETAILED DESCRIPTION

As mentioned above, user interfaces may be designed for particular usescenarios. For example, in the case of a user interface designed fordisplay on a computer monitor, it may be assumed that a user will viewthe user interface from a relatively close distance, and utilize arelatively precise input mechanism. These assumptions may be accurate inmost cases, as the user is unlikely to move away from the display deviceand/or input mechanism when interacting with the user interface.

However, in the case of a user interface configured to be controlled byuser gestures and/or voice commands, a user may be positioned across amuch wider range of distances when interacting with the user interface.When the user is at greater distances from the display device, the usermay have difficulty viewing and/or selecting user interface featuresdesigned for shorter-distance use. Likewise, when the user is at lesserdistances, a user interface designed for greater distances may haveunnecessarily large and/or widely spaced controls.

Accordingly, embodiments are disclosed that relate to dynamicallyadapting a user interface based upon a user's distance from the userinterface. Briefly, a sensor such as a depth camera may be used todetermine a distance between the user and the display device. Then,based on this distance and/or changes in this distance, one or moreaspects of a displayed user interface may be adjusted. For example, asize and/or number of features in the user interface may be increased ordecreased based upon changes in the user's distance from the userinterface. This may help to maintain a desired level of readability andease of interactivity for the user interface as a user moves within theuse environment.

FIG. 1 shows a non-limiting example of a use environment 100. Inparticular, FIG. 1 shows an entertainment system 102 that may be used toplay a variety of different games, play one or more different mediatypes, and/or control or manipulate non-game applications and/oroperating systems. FIG. 1 also shows a display device 104 such as atelevision or a computer monitor, which may be used to present mediacontent, game visuals, etc., to users. As one example, display device104 may be used to visually present a user interface 110 forentertainment system 102. The user interface environment 100 may includea capture device 106, such as a depth camera that visually monitors ortracks objects and users within an observed scene.

Display device 104 may be operatively connected to entertainment system102 via a display output of the entertainment system. For example,entertainment system 102 may include an HDMI or other suitable wired orwireless display output. Display device 104 may receive video contentfrom entertainment system 102, and/or it may include a separate receiverconfigured to receive video content directly from a content provider.Additionally, display device 104 may display the user interface 110received from entertainment system 102. The user interface 110 maypresent video content (including gaming and non-gaming video content),menus, control options, or other suitable content to user 108. The userinterface 110 displayed on display device 104 may include multiplefeatures, such as images, text, control buttons, etc. User 108 may enterinput via user interface 110, for example by selecting one of thedisplayed features by touching display device 104, performing a specificgesture, issuing a voice command, etc.

The capture device 106 may be operatively connected to the entertainmentsystem 102 via one or more interfaces. As a non-limiting example, theentertainment system 102 may include a universal serial bus to which thecapture device 106 may be connected. Capture device 106 may be used torecognize, analyze, and/or track one or more human subjects and/orobjects within a physical space, such as user 108. In one non-limitingexample, capture device 106 may include an infrared light to projectinfrared light onto the physical space and a depth camera configured toreceive infrared light.

In order to image objects within the physical space, the infrared lightmay emit infrared light that is reflected off objects in the physicalspace and received by the depth camera. Based on the received infraredlight, a depth map of the physical space may be compiled. Capture device106 may output the depth map derived from the infrared light toentertainment system 102, where it may be used to create arepresentation of the physical space imaged by the depth camera. Thecapture device may also be used to recognize objects in the physicalspace, monitor movement of one or more users, perform gesturerecognition, etc. For example, a distance between user 108 and displaydevice 104 may be determined based on information received from thecapture device. Virtually any depth finding technology may be usedwithout departing from the scope of this disclosure. Example depthfinding technologies are discussed in more detail with reference to FIG.5.

Entertainment system 102 may be configured to communicate with one ormore remote computing devices, not shown in FIG. 1. For example,entertainment system 102 may receive video content directly from abroadcaster, third party media delivery service, or other contentprovider. Entertainment system 102 may also communicate with one or moreremote services via the Internet or another network, for example inorder to analyze depth information received from capture device 106.

While the embodiment depicted in FIG. 1 shows entertainment system 102,display device 104, and capture device 106 as separate elements, in someembodiments one or more of the elements may be integrated into a commondevice. For example, entertainment system 102 and capture device 106 maybe integrated in a common device.

FIG. 1 also shows a scenario in which capture device 106 tracks user 108so that the movements of the user may be interpreted by entertainmentsystem 102. In particular, capture device 106 may track user 108 so thatentertainment system 102 may locate user 108 within the physical spaceimaged by the capture device. Once located, data from capture device 106may be used to determine a distance between user 108 and display device104.

Entertainment system 102 may adjust the number and/or size of featuresdisplayed in user interface 110 based on the determined distance of theuser. For example, as depicted in FIG. 1, user 108 may be located at afirst, relatively shorter distance from display device 104. As a result,user 108 may be able to visualize a large number of small-sizedfeatures. Thus, user interface 110 is shown displaying a first, largernumber of features having a smaller relative size. Such a user interfacemay be configured for relatively more precise input mechanisms, such asgestures performed at close distances and/or touch inputs performed ondisplay device 104.

For gesture-based inputs, entertainment system 102 may receive data fromcapture device 106 and identify one or more movements of user 108 fromthe received data. While entertainment system 102 may receive image(e.g., depth) data for the entire physical space within the field ofview of capture device 106, only a particular region of the imagedphysical space may be analyzed to determine input control gesturesperformed by user 108. By restricting the analysis to a defined zonerather than the entire physical space, the accuracy of identifiedgestures may be increased. This defined zone may be referred to as auser input zone 112, which is a zone of physical interaction between theuser and the display device as monitored via data from the capturedevice 106.

User input zone 112 may also be adjusted based on the distance betweenuser 108 and display device 104 (or the distance between user 108 andcapture device 106). For example, the user input zone may be scaled downand focused in front of the user as the user moves closer to the capturedevice. This may allow a user to make relatively finer motions tointeract with the user interface, and to ensure that the entire userinput zone is within the field of view of the capture device. It will beunderstood that the size of the user input zone may also be based on asize of the user, which may be determined by the depth information.

If user 108 moves away from display device 104, the user interfaceand/or user input zone may be adjusted. For example, as the user movesaway from the display device, the closer-range user interface may becomedifficult to visualize. As such, the size of displayed features may beincreased and/or the number of displayed features may be decreased.Further, the user input zone size may be increased as the amount ofspace around the user imaged by capture device increases.

FIG. 2 illustrates user 108 at a second, greater distance from displaydevice 104. Based on the increased distance between user 108 and displaydevice 104, user interface 110 may be adjusted to display fewer featuresof a larger size and/or spacing, as a user may have more difficultyselecting smaller elements at a greater distance. Additionally, the sizeof user input zone 112 may be increased, as described above. This mayallow more precise gesture control by allowing for larger user gesturemovements relative to a movement of a cursor or other selection controlon the display.

In addition to tracking the distance between the user and the displaydevice and adjusting the user interface accordingly, the direction theuser is facing may also be tracked, and the user interface may beadjusted based on a direction the user is facing. For example, if theuser turns away from the display device, the user interface may beadjusted to display larger content that may be more useful from theangle at which the user is now viewing the display device. In anotherexample, less personal information may be displayed when the user turnsaway from the display device, such that the user may be interrupted byanother user and turn to interact with the other user, yet feelcomfortable that the previously-displayed information is now hidden fromview.

As explained above, in order to track and interpret movements of user108, depth data may be collected by the depth camera of capture device106. As explained previously, capture device 106 may include one or moresensors that are configured to observe a human subject, such as user108. For example, the capture device may include a depth camera, avisible light (e.g., color) camera, and a microphone.

FIG. 3 shows a flow diagram depicting an embodiment of a method 300 foradjusting a user interface based on a distance of a user from the userinterface. The user distance may be measured using depth data receivedby a depth camera, such as capture device 106, and/or in any othersuitable manner.

At 302, depth information is received from a depth sensor, such as adepth camera. The depth information may be used to compile a depth mapof the imaged physical space including a user. At 304, the user islocated in the physical space from the depth information, and at 306, adistance between the user and the display device is determined using thedepth information. The location of the display device also may bedetermined based on the depth information, depending upon a location ofthe capture device. In other embodiments, the location of the displaydevice may be inferred. For example it may be assumed the display deviceand depth camera are in a similar location. The distance between thedisplay device and the user may be determined based on any suitable partof the user. For example, the distance between the user's torso and thedisplay device may be determined, the distance between the head of theuser and the display device may be determined, etc.

At 308, method 300 includes adjusting a size and/or number of featuresof a user interface displayed on the display device based on thedetermined distance. As explained previously, the features of the userinterface may include text, images, control input buttons, menus, and/orany other suitable features. As indicated at 310, as the distancebetween the user and the display device increases, the size of thedisplayed features may increase and/or the number of displayed featuresmay decrease. Conversely, as indicated at 312, as the distance betweenthe user and the display device decreases, the size of the displayedfeatures may decrease and/or the number of displayed features mayincrease. In some embodiments, when the size and/or number of featuresof the user interface are adjusted, the features may be animated as theyare adjusted in order to facilitate user understanding of what ischanging during the adjustment of the interface.

Further, any other suitable user interface adjustments may be performed.For example, if the user is within touching distance of the displaydevice, user input controls selectable by touch may be displayed.Likewise, if the user moves out of touching distance, display of thetouch input controls may cease. In another example, certain features maybe condensed or expanded as the user moves relative to the displaydevice. For example, if the user is a relatively far distance from thedisplay device, an email menu may be displayed that indicates the totalnumber of unread emails in the user's email account. As the user movescloser to the display device, the email menu may be adjusted to displaythe subjects of all the unread emails. Virtually any mechanism ofadjusting the features of the user interface based on the distance ofthe user from the display device is within the scope of this disclosure.

In some embodiments, as indicated at 314, the features of the userinterface may be adjusted when the distance between the user and thedisplay device reaches a threshold distance. In this way, the displayedfeatures may remain of constant size, number, etc., as the user moveswithout crossing a threshold distance. However, upon crossing athreshold distance, the user interface may be adjusted. Adjusting theuser interface at threshold distances may provide a smoother userinterface display in some cases due to the interface not changing for atleast a range of distances. In other embodiments, user interfacefeatures may be continually adjusted as the user moves. For example, ifthe user interface is displaying a map, the map may be continuallyrescaled as the user moves.

If the user is positioned near the threshold distance for adjusting theuser interface, in some embodiments, some hysteresis may be provided atthe threshold to avoid having small movements around the thresholdtrigger a change in the user interface. For example, upon crossing athreshold in one direction (thereby triggering an adjustment of the userinterface), a different threshold may be used to readjust the userinterface back to the original layout. This may help to avoid flickeringof the user interface between views when a user is located near adistance threshold. Additional detail regarding user interfaceadjustment based on threshold distances will be presented below withrespect to FIG. 4.

At 316, method 300 may further comprise scaling the user input zonebased on the determined distance of the user from the user interface.For example, as described above, a size of a user input zone (e.g. aphysical interaction zone monitored for gesture inputs) may increase asthe distance between the user and the display device increases, and maydecrease as the distance decreases. In some examples, a prompt may bedisplayed on the display device indicating to the user that his or hergestures are to change in size and/or scope as the user input zonechanges. As with the appearance of the user interface, the user inputzone may change at threshold distances, may vary continuously, or mayvary in different manners in different distance ranges.

FIG. 4 illustrates a method 400 for adjusting a user input based on adistance of the user according to another embodiment of the presentdisclosure, and illustrates hysteresis when a user crosses a thresholddistance in different directions.

At 402, depth information is received from a depth camera. As explainedabove, the depth information may be used to compile a depth map of theimaged physical space including a user. At 404, the user is located inthe physical space from the depth information. At 406, the distancebetween the user and the display device is determined using the depthinformation. At 408, it is determined if the distance between the userand the display device is greater than a first threshold. The firstthreshold may be any suitable distance. For example, the first thresholdmay be a distance at which it is assumed that the user interface maybecome difficult for the user to clearly see, understand, and/orinteract with.

If the user is not at a distance greater than the threshold, method 400proceeds to 410 to display the user interface with a first number offeatures, and/or at 412, to scale the user input zone to a first size.On the other hand, if the user is at a distance greater than thethreshold, method 400 comprises, at 414, displaying a user interfacewith a second, different number of features. This may additionally oralternatively comprise displaying features of different sizes and/orseparations than for distances not greater than the first threshold.Further, method 400 may comprise, at 416, scaling the input zone to asecond, different size.

As the user moves within the use environment, the user is monitored forchanges in distance. Thus, at 418, method 400 comprises determining ifthe distance of the user is less than the first threshold. If thedistance is not less than the first threshold, then method 400 continuesto display the user interface with the second number of features.

On the other hand, if the distance is less than the first threshold,method 400 comprises, at 420, determining if the distance is less than asecond threshold. For example, the second threshold may be near thefirst threshold, but may be a shorter distance (i.e. closer to thedisplayed user interface) than the first threshold. If the user is notat a distance less than the second threshold, method 400 continues todisplay the user interface with the second number of features. However,if the user is at a distance less than the second threshold, then method400 comprises, at 422, displaying the user interface with the firstnumber of features and, at 424, scaling the user input zone to the firstsize. This may help to avoid an unstable user interface appearanceand/or user input zone size when in the vicinity of a distancethreshold.

While only two zones (e.g., a first distance and a second distance) aredescribed in the above examples, it is to be understood that thephysical space imaged by the depth camera and occupied by the user maybe divided into any number of zones, with each zone having a differentuser interface layout. Further, if the user moves completely out of thefield of view of the depth camera, the user interface may be adjusted todisplay a power-saving interface, for example, or may be adjusted in anyother suitable manner. In another example, if the user is close to thedisplay device with his or her hands down, a non-interactive interfacemay be displayed. Then, if the user raises his or her arm, aninteractive interface may be displayed.

In some embodiments, the methods and processes described above may betied to a computing system of one or more computing devices. Inparticular, such methods and processes may be implemented as acomputer-application program or service, an application-programminginterface (API), a library, and/or other computer-program product.

FIG. 5 schematically shows a non-limiting embodiment of a computingsystem 500 that can enact one or more of the methods and processesdescribed above. Computing system 500 is one non-limiting example ofentertainment system 102. Computing system 500 is shown in simplifiedform. It will be understood that virtually any computer architecture maybe used without departing from the scope of this disclosure. Indifferent embodiments, computing system 500 may take the form of amainframe computer, server computer, desktop computer, laptop computer,tablet computer, home-entertainment computer, network computing device,gaming device, mobile computing device, mobile communication device(e.g., smart phone), etc.

Computing system 500 includes a logic subsystem 502 and a storagesubsystem 504. Computing system 500 may optionally include a displaysubsystem 506, input subsystem 508, communication subsystem 510, and/orother components not shown in FIG. 5.

Logic subsystem 502 includes one or more physical devices configured toexecute instructions. For example, the logic subsystem may be configuredto execute instructions that are part of one or more applications,services, programs, routines, libraries, objects, components, datastructures, or other logical constructs. Such instructions may beimplemented to perform a task, implement a data type, transform thestate of one or more components, or otherwise arrive at a desiredresult.

The logic subsystem may include one or more processors configured toexecute software instructions. Additionally or alternatively, the logicsubsystem may include one or more hardware or firmware logic machinesconfigured to execute hardware or firmware instructions. The processorsof the logic subsystem may be single-core or multi-core, and theprograms executed thereon may be configured for sequential, parallel ordistributed processing. The logic subsystem may optionally includeindividual components that are distributed among two or more devices,which can be remotely located and/or configured for coordinatedprocessing. Aspects of the logic subsystem may be virtualized andexecuted by remotely accessible, networked computing devices configuredin a cloud-computing configuration.

Storage subsystem 504 includes one or more physical, non-transitory,devices configured to hold data and/or instructions executable by thelogic subsystem to implement the methods and processes described herein.When such methods and processes are implemented, the state of storagesubsystem 504 may be transformed—e.g., to hold different data.

Storage subsystem 504 may include removable media and/or built-indevices. Storage subsystem 504 may include optical memory devices (e.g.,CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory devices(e.g., RAM, EPROM, EEPROM, etc.) and/or magnetic memory devices (e.g.,hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), amongothers. Storage subsystem 504 may include volatile, nonvolatile,dynamic, static, read/write, read-only, random-access,sequential-access, location-addressable, file-addressable, and/orcontent-addressable devices.

It will be appreciated that storage subsystem 504 includes one or morephysical, non-transitory devices. However, in some embodiments, aspectsof the instructions described herein may be propagated in a transitoryfashion by a pure signal (e.g., an electromagnetic signal, an opticalsignal, etc.) that is not held by a physical device for a finiteduration. Furthermore, data and/or other forms of information pertainingto the present disclosure may be propagated by a pure signal.

In some embodiments, aspects of logic subsystem 502 and of storagesubsystem 504 may be integrated together into one or more hardware-logiccomponents through which the functionally described herein may beenacted. Such hardware-logic components may include field-programmablegate arrays (FPGAs), program- and application-specific integratedcircuits (PASIC/ASICs), program- and application-specific standardproducts (PSSP/ASSPs), system-on-a-chip (SOC) systems, and complexprogrammable logic devices (CPLDs), for example.

The term “module” may be used to describe an aspect of computing system500 implemented to perform a particular function. In some cases, amodule may be instantiated via logic subsystem 502 executinginstructions held by storage subsystem 504. It will be understood thatdifferent modules may be instantiated from the same application,service, code block, object, library, routine, API, function, etc.Likewise, the same module may be instantiated by different applications,services, code blocks, objects, routines, APIs, functions, etc. The term“module” may encompass individual or groups of executable files, datafiles, libraries, drivers, scripts, database records, etc.

It will be appreciated that a “service”, as used herein, is anapplication program executable across multiple user sessions. A servicemay be available to one or more system components, programs, and/orother services. In some implementations, a service may run on one ormore server-computing devices.

When included, display subsystem 506 may be used to present a visualrepresentation of data held by storage subsystem 504. This visualrepresentation may take the form of a graphical user interface (GUI). Asthe herein described methods and processes change the data held by thestorage subsystem, and thus transform the state of the storagesubsystem, the state of display subsystem 506 may likewise betransformed to visually represent changes in the underlying data.Display subsystem 506 may include one or more display devices utilizingvirtually any type of technology. Such display devices may be combinedwith logic subsystem 502 and/or storage subsystem 504 in a sharedenclosure, or such display devices may be peripheral display devices.

When included, input subsystem 508 may comprise or interface with one ormore user-input devices such as a keyboard, mouse, touch screen, or gamecontroller. In some embodiments, the input subsystem may comprise orinterface with selected natural user input (NUI) componentry. Suchcomponentry may be integrated or peripheral, and the transduction and/orprocessing of input actions may be handled on- or off-board. Example NUIcomponentry may include a microphone for speech and/or voicerecognition; an infrared, color, steroscopic, and/or depth camera formachine vision and/or gesture recognition; a head tracker, eye tracker,accelerometer, and/or gyroscope for motion detection and/or intentrecognition; as well as electric-field sensing componentry for assessingbrain activity.

When included, communication subsystem 510 may be configured tocommunicatively couple computing system 500 with one or more othercomputing devices. Communication subsystem 510 may include wired and/orwireless communication devices compatible with one or more differentcommunication protocols. As non-limiting examples, the communicationsubsystem may be configured for communication via a wireless telephonenetwork, or a wired or wireless local- or wide-area network. In someembodiments, the communication subsystem may allow computing system 500to send and/or receive messages to and/or from other devices via anetwork such as the Internet.

Further, computing system 500 may include a skeletal modeling module 512configured to receive imaging information from a depth camera 520(described below) and identify and/or interpret one or more postures andgestures performed by a user. Computing system 500 may also include avoice recognition module 514 to identify and/or interpret one or morevoice commands issued by the user detected via a microphone (coupled tocomputing system 500 or the depth camera). While skeletal modelingmodule 512 and voice recognition module 514 are depicted as beingintegrated within computing system 500, in some embodiments, one or bothof the modules may instead be included in the depth camera 520.

Computing system 500 may be operatively coupled to the depth camera 520.Depth camera 520 may include an infrared light 522 and a depth camera524 (also referred to as an infrared light camera) configured to acquirevideo of a scene including one or more human subjects. The video maycomprise a time-resolved sequence of images of spatial resolution andframe rate suitable for the purposes set forth herein. As describedabove with reference to FIGS. 1 and 2, the depth camera and/or acooperating computing system (e.g., computing system 500) may beconfigured to process the acquired video to identify one or morepostures and/or gestures of the user, determine a distance between theuser and a display device, and to interpret such postures and/orgestures as device commands configured to control various aspects ofcomputing system 500.

Depth camera 520 may include a communication module 526 configured tocommunicatively couple depth camera 520 with one or more other computingdevices. Communication module 526 may include wired and/or wirelesscommunication devices compatible with one or more differentcommunication protocols. In one embodiment, the communication module 526may include an imaging interface 528 to send imaging information (suchas the acquired video) to computing system 500. Additionally oralternatively, the communication module 526 may include a controlinterface 530 to receive instructions from computing system 500. Thecontrol and imaging interfaces may be provided as separate interfaces,or they may be the same interface. In one example, control interface 530and imaging interface 528 may include a universal serial bus.

The nature and number of cameras may differ in various depth camerasconsistent with the scope of this disclosure. In general, one or morecameras may be configured to provide video from which a time-resolvedsequence of three-dimensional depth maps is obtained via downstreamprocessing. As used herein, the term ‘depth map’ refers to an array ofpixels registered to corresponding regions of an imaged scene, with adepth value of each pixel indicating the depth of the surface imaged bythat pixel. ‘Depth’ is defined as a coordinate parallel to the opticalaxis of the depth camera, which increases with increasing distance fromthe depth camera.

In some embodiments, depth camera 520 may include right and leftstereoscopic cameras. Time-resolved images from both cameras may beregistered to each other and combined to yield depth-resolved video.

In some embodiments, a “structured light” depth camera may be configuredto project a structured infrared illumination comprising numerous,discrete features (e.g., lines or dots). A camera may be configured toimage the structured illumination reflected from the scene. Based on thespacings between adjacent features in the various regions of the imagedscene, a depth map of the scene may be constructed.

In some embodiments, a “time-of-flight” depth camera may include a lightsource configured to project a pulsed infrared illumination onto ascene. Two cameras may be configured to detect the pulsed illuminationreflected from the scene. The cameras may include an electronic shuttersynchronized to the pulsed illumination, but the integration times forthe cameras may differ, such that a pixel-resolved time-of-flight of thepulsed illumination, from the light source to the scene and then to thecameras, is discernible from the relative amounts of light received incorresponding pixels of the two cameras.

Depth camera 520 may include a visible light camera 532 (e.g., color).Time-resolved images from color and depth cameras may be registered toeach other and combined to yield depth-resolved color video. Depthcamera 520 and/or computing system 500 may further include one or moremicrophones 534.

While depth camera 520 and computing system 500 are depicted in FIG. 5as being separate devices, in some embodiments depth camera 520 andcomputing system 500 may be included in a single device. Thus, depthcamera 520 may optionally include computing system 500.

It will be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated and/ordescribed may be performed in the sequence illustrated and/or described,in other sequences, in parallel, or omitted. Likewise, the order of theabove-described processes may be changed.

The subject matter of the present disclosure includes all novel andnon-obvious combinations and sub-combinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

1. A method for adjusting a user interface display, comprising: receiving depth information of a physical space from a depth camera; locating a user within the physical space from the depth information; determining a distance between the user and a display device from the depth information; and scaling an input zone of the user based on the distance between the user and the display device, the input zone comprising a cross-sectional area less than a field of view of the depth camera.
 2. The method of claim 1, further comprising adjusting one or more features of a user interface displayed on the display device based on the distance.
 3. The method of claim 2, wherein adjusting one or more features further comprises adjusting a number of one or more features of the user interface displayed on the display device.
 4. The method of claim 3, wherein as the distance decreases, the number of displayed features increases, and wherein as the distance increases, the number of displayed features decreases.
 5. The method of claim 2, wherein adjusting one or more features of the user interface displayed on the display device based on the distance further comprises displaying the user interface with a first number of features when the distance is less than a first threshold, and displaying the user interface with a second number of features when the distance is greater than the first threshold.
 6. The method of claim 5, further comprising continuing to display the user interface with the second number of features until the distance is below a second threshold, lower than the first threshold, and wherein once the distance is below the second threshold, displaying the user interface with the first number of features.
 7. The method of claim 1, wherein scaling an input zone of the user based on the distance between the user and the display device comprises increasing a size of the input zone as the distance increases.
 8. The method of claim 1, further comprising adjusting one or more features of the user interface based on a direction the user is facing.
 9. On a computing device, a method for adjusting a user interface display, comprising: receiving depth information of a physical space from a depth camera; locating a user within the physical space from the depth information; determining a distance between the user and a display device from the depth information; if the user is a first distance from the display device, scaling an input zone of the user based on the first distance; and as the user moves from the first distance to a second distance from the display device scaling the input zone based on the second distance.
 10. The method of claim 9, wherein the first distance is less than the second distance, and wherein a size of the input zone scaled based on the first distance is smaller than a size of the input zone scaled based on the second distance.
 11. The method of claim 9, wherein the first distance is greater than the second distance, and wherein a size of the input zone scaled based on the first distance is greater than a size of the input zone scaled based on the second distance.
 12. The method of claim 9, further comprising, if the user is at the first distance, displaying a user interface on the display device with a first number of features, and as the user moves from the first distance to the second distance, changing the user interface to display a second number of features that is different than the first number of features.
 13. The method of claim 12, further comprising, as the user moves from the second distance toward the first distance and the first threshold distance, maintaining the input zone of the user at the second size until a second threshold distance is crossed, and scaling the input zone of the user to the first size upon crossing the second threshold distance.
 14. The method of claim 9, further comprising if the user is the first distance from the display device, receiving input from the user via touch input on the display device.
 15. The method of claim 9, further comprising if the user is the second distance from the display device, receiving input from the user via gestures and/or voice commands.
 16. A computing device, comprising: a logic subsystem; and a storage subsystem holding instructions executable by the logic subsystem to: receive depth information of a physical space from a depth camera; locate a user within the physical space from the depth information; determine a distance between the user and a display device from the depth information; scale an input zone of the user based on the distance, the input zone comprising a cross-sectional area less than a field of view of the depth camera; and increase a size of the input zone based upon an increase in an amount of space around the user imaged by the depth camera.
 17. The computing device of claim 16, wherein the instructions are executable to scale the input zone of the user based on a size of the user determined from the depth information.
 18. The computing device of claim 16, wherein the instructions are executable to scale the input zone of the user based on the distance by increasing a size of the input zone as the distance increases.
 19. The computing device of claim 16, wherein the instructions are executable to adjust one or more features of a user interface displayed on the display device upon detecting that a user moved across a threshold distance.
 20. The computing device of claim 19, wherein the instructions are executable to adjust the one or more features by adjusting a size and/or number of one or more features of the user interface displayed on the display device. 